home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 072 (1988-11-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 072 (1988-11-15)(Ossowski, Stefan)(DE)(PD).adf / Pcopy / pcopy.h < prev    next >
C/C++ Source or Header  |  1988-08-14  |  8KB  |  293 lines

  1. #include "exec/types.h"
  2. #include "exec/execbase.h"
  3. #include "exec/memory.h"
  4. #include "intuition/intuition.h"
  5. #include "Intuition/intuitionbase.h"
  6. #include "libraries/dosextens.h"
  7. #include "devices/audio.h"
  8. #include "devices/trackdisk.h"
  9.  
  10. /* select drives */
  11.  
  12. #define GWIDTH        44
  13. #define GHEIGHT        11
  14. #define GHSPACE        12
  15. #define GVSPACE        4
  16. #define GLDIST        15
  17. #define GTDIST        14
  18.  
  19. /* windows and positions inside them */
  20.  
  21. #define GGH        13
  22.  
  23. #define WD1        244
  24. #define HD1        21
  25. #define TD1        12
  26. #define LD1        640-WD1
  27.  
  28. #define WD0        WD1
  29. #define HD0        HD1
  30. #define TD0        TD1+HD1+2
  31. #define LD0        640-WD1
  32.  
  33. #define WHS        WD1
  34. #define HHS        70
  35. #define THS        TD0+HD0+2
  36. #define LHS        640-WHS
  37.  
  38. #define WTM        332
  39. #define HTM        HD1
  40. #define TTM        TD1
  41. #define LTM        LD1-3-WTM
  42.  
  43. #define WST        208
  44. #define HST        7*GGH+2
  45. #define TST        TTM+HTM+2
  46. #define LST        LD0-3-WST
  47.  
  48. /* History array size */
  49. #define MHIST        32
  50. #define MVOLNAME    32
  51.  
  52. /* shorttime is the position of the \0 if depth gadgets are displayed  */
  53. #define SHORTTIME    34
  54. #define DESTCOLOR    3            /* color of dest drive */
  55.  
  56. /* defs about the disk and its format */
  57. #define NUMCYLS        80
  58. #define NUMHEADS    2
  59. #define NUMTRACS    NUMHEADS*NUMCYLS
  60. #define BPTRACK        NUMSECS*TD_SECTOR    /* bytes per track    */
  61. #define BPCYL        NUMHEADS*BPTRACK
  62. #define LPSECTOR    TD_SECTOR/4        /* longs per sector    */
  63. #define ROOTSECTOR    880
  64. #define ROOTCYL        40
  65. #define ROOTTRACK    NUMHEADS*ROOTCYL
  66. #define ROOT_CHKSUM    5
  67. #define ROOT_BMFFLAG    78            /* adresses in root    */
  68. #define    ROOT_ALTDAYS    105
  69. #define ROOT_ALTMINS    106
  70. #define ROOT_ALTTICKS    107
  71. #define ROOT_VOLNAME    108
  72. #define ROOT_CRTDAYS    121
  73. #define ROOT_CRTMINS    122
  74. #define ROOT_CRTTICKS    123
  75.  
  76. /* some ..  */
  77. #define PUBCLR        MEMF_PUBLIC|MEMF_CLEAR
  78. #define NDRIVES        4
  79. #define VOLNAMESIZE    64
  80. #define WAIT        1
  81. #define NOWAIT        -1
  82. #define BEEP_PRI    85
  83.  
  84.  
  85. /*  struct IOStdReq should have been: struct IOExtTD, but this is
  86.  *  compensated by the definition of the missing fields in the
  87.  *  DriveInfo structure. Membernames became too long.
  88.  */
  89.  
  90. typedef struct DriveInfo{
  91.   struct IOStdReq Req;            /*  (iotd_Req            */
  92.   ULONG  Count;                /*  (iotd_Count)        */
  93.   ULONG  SecLabel;            /*  (iotd_Seclabel)        */
  94.   char  *DevName;            /*  df0:, df1: etc.        */
  95.   char   DOSInhbt;            /*  Dos inhibited flag        */
  96.   char   xx;                /*                */
  97.   int    Device;            /*  Trackdisk return value    */
  98.   int    Error;                /*  High level error        */
  99.   char   VolName[VOLNAMESIZE];        /*  Volume name (of disk)    */
  100.   ULONG  ChgNum;            /*  Disk change count        */
  101.   char   DOSDisk;            /*  AmigaDos formatted disk    */
  102.   char   DOSBoot;            /*  AmigaDos look-a-like    */
  103.   char   Readable;            /*  No error during read    */
  104.   char   Present;            /*  Disk in unit present    */
  105. } DrInfo;
  106.  
  107. /*
  108.  *  functions in pcopy.c
  109.  */
  110.  
  111. extern int _main();
  112. extern void MainLoop();
  113. extern int GetDrive();
  114. extern int ReadSec();
  115. extern int CheckSum();
  116. extern int DiskCopy();
  117. extern int DIOCyl();
  118. extern int Compare();
  119. extern void MotorOff();
  120. extern void ChangeRoot();
  121. extern int Init();
  122. extern void Quit();
  123. extern DrInfo *OpenDrive();
  124. extern void CloseDrive();
  125. extern void CheckCopy();
  126. extern void CheckControl();
  127. extern void ShDName();
  128.  
  129. /*
  130.  *  functions in pc1.c
  131.  */
  132.  
  133. extern void MemCleanup();
  134. extern void ConPutStr();
  135. extern int Request();
  136. extern int OpenUser();
  137. extern void CloseUser();
  138. extern void RefOneGadget();
  139. extern int Beep();
  140. extern void DoBeep();
  141. extern long dos_packet();
  142. extern int AskDrives();
  143. extern void EnterHist();
  144. extern void RefHist();
  145.  
  146. /*
  147.  *  functions in unmerged.c
  148.  */
  149.  
  150. extern UBYTE *GetSoundDataAddress();
  151. extern ULONG GetSoundDataSize();
  152.  
  153. /*
  154.  *  library functions
  155.  */
  156.  
  157. extern struct IntuiMessage *GetMsg();
  158. extern struct Window *OpenWindow();
  159. extern struct MsgPort *CreatePort();
  160. extern struct IOStdReq *CreateStdIO();
  161.  
  162. /*
  163.  *  Fast globals in fast.c
  164.  */
  165.  
  166. /* A bunch of globals */
  167. extern struct IntuitionBase *IntuitionBase;
  168. extern struct Window  *W0;    /* "Now in DF0:" window  */
  169. extern struct Window  *W1;    /* "Now in DF1:" window  */
  170. extern struct Window  *WH;    /* "Copy History" window  */
  171. extern struct Window  *WT;    /* "Track-staff" window  */
  172. extern struct Window  *WS;    /* "Status/Command" window */
  173. extern struct IOStdReq *IOHist;    /* History uses a Console device  */
  174. extern struct MsgPort  *MPHist;    /* Port used for Console device  */
  175. extern struct IOAudio Sound;    /* */
  176. extern ULONG *CopyBuffer;    /* ..  */
  177. extern ULONG *CompBuffer;    /* compare buffer  */
  178. extern DrInfo *D0, *D1;     /* two drive descriptors  */
  179. extern short EnAuto;        /* flag to prevent copy after copy after.. */
  180. extern short NowCopy;        /* flag, shows which gadgets are displayed */
  181. extern char *Hist;        /* pointer to one big (1k) char array  */
  182. extern char *DriveName[NDRIVES];/* array with names of selected drives  */
  183. extern ULONG DriveNr[NDRIVES];    /* array with #'s of selected drives  */
  184.  
  185. /***  - SELECT DRIVES - Border around gadgets  ***/
  186. extern SHORT  XYBox[];
  187. extern struct Border BDBox;
  188.  
  189. /***  - SELECT DRIVES -  Gadget and text DF0:  ***/
  190. extern struct IntuiText ITDF0;
  191. extern struct Gadget GDF0;
  192.  
  193. /***  - SELECT DRIVES -  Gadget and text DF1:  ***/
  194. extern struct IntuiText ITDF1;
  195. extern struct Gadget GDF1;
  196.  
  197. /***  - SELECT DRIVES -  Gadget and text DF2:  ***/
  198. extern struct IntuiText ITDF2;
  199. extern struct Gadget GDF2;
  200.  
  201. /***  - SELECT DRIVES -  Gadget and text DF3:  ***/
  202. extern struct IntuiText ITDF3;
  203. extern struct Gadget GDF3;
  204.  
  205. /***  - SELECT DRIVES -  Gadget and text "DONE"  ***/
  206. extern struct IntuiText ITDONE;
  207. extern struct Gadget GDONE;
  208.  
  209. /***  - SELECT DRIVES -  Window  ***/
  210. extern struct NewWindow NwR;
  211.  
  212. /***  - SELECT DRIVES -  Gadgets indexed available  ***/
  213. extern struct Gadget *GList[];
  214.  
  215.  
  216. /***  - COPY INTERFACE -  Track mark Window and staff IM's   ***/
  217. extern char           TxT[];
  218. extern struct IntuiText ITT;
  219. extern struct Image IMTTTL;
  220. extern struct Image IMTmOn;
  221. extern struct Image IMTmOf;
  222. extern struct NewWindow NwT;
  223.  
  224. /***  - COPY INTERFACE -  "Now in" windows   ***/
  225. extern char           Tx1[];
  226. extern struct IntuiText IT1;
  227. extern struct NewWindow Nw1;
  228. extern char           Tx0[];
  229. extern struct IntuiText IT0;
  230. extern struct NewWindow Nw0;
  231.  
  232. /***  - COPY INTERFACE -  History Window    ***/
  233. extern char           TxH[];
  234. extern struct IntuiText ITH;
  235. extern struct NewWindow NwH;
  236.  
  237.  
  238. /***  - C.I. CONTROL -  Some general images and texts  ***/
  239. extern struct Image  IMOFF;
  240. extern struct Image   IMON;
  241. extern struct IntuiText ITCCon;
  242. extern struct Image IMBlnk;
  243. extern struct Image IMEcla;
  244. extern struct Image IMEcOf;
  245.  
  246. /***  - C.I. CONTROL -  Source/Destination Gadget   ***/
  247. extern struct IntuiText  ITDr1;
  248. extern struct IntuiText  ITDr0;
  249. extern UBYTE  PenA;
  250. extern UBYTE  PenB;
  251. extern struct Image  IMARR;
  252. extern struct Image  IMARL;
  253. extern APTR ArrowA;
  254. extern APTR ArrowB;
  255. extern struct Gadget GD0D1;
  256.  
  257. /***  - C.I. CONTROL -  Manual start copy gadget  ***/
  258. extern SHORT  XYCopy[];
  259. extern struct Border BDCopy;
  260. extern struct IntuiText ITCopy;
  261. extern struct Gadget GCopy;
  262.  
  263. /***  - C.I. CONTROL -  Auto/Manual start switch gadget  ***/
  264. extern struct IntuiText ITAuto;
  265. extern struct Gadget GAuto;
  266.  
  267. /***  - C.I. CONTROL -  Verify switch gadget  ***/
  268. extern struct IntuiText ITVerf;
  269. extern struct Gadget GVerf;
  270.  
  271. /***  - C.I. CONTROL -  "Non DOS" switch gadget  ***/
  272. extern struct IntuiText ITNDOS;
  273. extern struct Gadget GNDOS;
  274.  
  275. /***  - C.I. CONTROL -  "Unreadable" switch gadget  ***/
  276. extern struct IntuiText ITUnRd;
  277. extern struct Gadget GUnRd;
  278.  
  279. /***  - C.I. CONTROL -  Control Window  ***/
  280. extern struct NewWindow NwS;
  281.  
  282. /*
  283.  *  Chip globals in chip.c
  284.  */
  285.  
  286. extern USHORT OFFData[];
  287. extern USHORT ONData[];
  288. extern USHORT ARRData[];
  289. extern USHORT ARLData[];
  290. extern USHORT EclaData[];
  291. extern UBYTE SoundData[];
  292. extern UBYTE SoundData1[];
  293.